package com.turtle.security.common.annotation;

import com.turtle.security.system.enums.OperateClient;
import com.turtle.security.system.enums.OperateType;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 操作日志注解
 *
 * @author turtle
 * date: 2020-06-05
 */
@Target({ElementType.PARAMETER, ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface OperateLog {

    /**
     * 模块
     *
     * @return String
     */
    public String module() default "";

    /**
     * 操作类型
     *
     * @return String
     */
    public OperateType operateType() default OperateType.OTHER;

    /**
     * 描述
     *
     * @return Sting
     */
    public String description() default "";

    /**
     * 操作客户端
     *
     * @return Sting
     */
    public OperateClient operateClient() default OperateClient.OTHER;

}
